package com.wm.dao;

import java.util.List;

import com.wm.bean.Area;
import com.wm.bean.City;
import com.wm.bean.Scriptorium;

public interface ScriptoriumDAO {
	
	/**
	 * 保存Scriptorium对象
	 * 
	 * @param scriptorium
	 * 			Scriptorium
	 * @return Scriptorium
	 * 			Scriptorium
	 */
	public Scriptorium saveScriptorium(Scriptorium scriptorium);
	
	/**
	 * 更新Scriptorium对象
	 * 
	 * @param scriptorium
	 * 			Scriptorium
	 * @return Scriptorium
	 * 			Scriptorium
	 */
	public Scriptorium updateScriptorium(Scriptorium scriptorium);
	
	/**
	 * 根据ID删除Scriptorium对象
	 * 
	 * @param id
	 * 			long
	 */
	public void removeScriptoriumById(long id);
	
	/**
	 * 根据ID获取Scriptorium对象
	 * 
	 * @param id
	 * 			long
	 * @return Scriptorium
	 * 			Scriptorium
	 */
	public Scriptorium findScriptoriumById(long id);
	
	/**
	 * 根据参数获取Scriptorium对象列表
	 * 
	 * @param scrPinyin
	 * 			String
	 * @param isShow
	 * 			int
	 * @param orderby
	 * @param ascOrDesc
	 * @return List
	 * 			List
	 */
	public List findScriptoriumsByScrPinyinYinIsShow(String scrPinyin,int isShow, String orderby, int ascOrDesc);
	
	/**
	 * 根据参数获取Scriptorium对象列表
	 * 
	 * @param cityId
	 * 			long
	 * @param isShow
	 * 			int
	 * @param orderby
	 * @param ascOrDesc
	 * @return List
	 * 			List
	 */
	public List findScriptoriumsByCityIdIsShow(long cityId,int isShow, String orderby, int ascOrDesc);
	
	/**
	 * 根据参数获取Scriptorium对象列表
	 * 
	 * @param areaId
	 * 			long
	 * @param isShow
	 * 			int
	 * @param orderby
	 * @param ascOrDesc
	 * @return List
	 * 			List
	 */
	public List findScriptoriumsByAreaIdIsShow(long areaId,int isShow, String orderby, int ascOrDesc);
	
	/**
	 * 根据参数获取Scriptorium对象列表
	 * 
	 * @param scrName
	 * 			String
	 * @param cityId
	 * 			long
	 * @param areaId
	 * 			long
	 * @param isShow
	 * 			int
	 * @param orderby
	 * @param ascOrDesc
	 * @param firstResult
	 * @param maxResults
	 * @return List
	 * 			List
	 */
	public List findScriptoriumsByScrNameCityIdAreaIdIsShow(String scrName,long cityId,long areaId,int isShow,String orderby,int ascOrDesc,int firstResult,int maxResults);
	
	/**
	 * 根据参数获取Scriptorium对象个数
	 * 
	 * @param cityId
	 * 			long
	 * @param areaId
	 * 			long
	 * @param isShow
	 * 			int
	 * @return long
	 * 			long
	 */
	public long getScriptoriumNumByScrNameCityIdAreaIdIsShow(String scrName,long cityId,long areaId,int isShow);
	
	/**
	 * 根据参数获取Scriptorium对象列表
	 * 
	 * @param isShow
	 * 			int
	 * @param orderby
	 * @param ascOrDesc
	 * @param firstResult
	 * @param maxResults
	 * @return List
	 * 			List
	 */
	public List findScriptoriumsByIsShow(int isShow,String orderby,int ascOrDesc,int firstResult,int maxResults);
	
	/**
	 * 根据参数获取Scriptorium对象个数
	 * 
	 * @param isShow
	 * 			int
	 * @return long
	 * 			long
	 */
	public long getScriptoriumNumByIsShow(int isShow);
	
	/**
	 * 根据参数获取Scriptorium对象列表
	 * @param scrInitials
	 * @param scrAnglic
	 * @param scrPhonetic
	 * @param scrType
	 * @param areaId
	 * @param isShow
	 * @param orderby
	 * @param ascOrDesc
	 * @return
	 */
	public List findScriptoriumsByScrInitialsScrAnglicScrPhoneticScrTypeAreaIdIsShow(String scrInitials,String scrAnglic,String scrPhonetic,int scrType,long areaId,int isShow,String orderby,int ascOrDesc);
	
	/**
	 * 根据参数获取Scriptorium对象列表
	 * @param scrName
	 * @return
	 */
	public List findScriptoriumByScrName(String scrName);
}
